package com.example.learningnote;

import android.content.Intent;
import android.os.Bundle;
import android.util.Log;
import android.view.Menu;
import android.view.MenuItem;
import android.view.View;
import android.widget.Button;
import android.widget.EditText;
import android.widget.Toast;


import androidx.appcompat.app.AppCompatActivity;
import androidx.appcompat.widget.Toolbar;

import com.example.learningnote.advanced.RecyclerViewActivity;
import com.example.learningnote.advanced.ViewPager2Activity;
import com.example.learningnote.giftbox.GiftBoxActivity;
import com.example.learningnote.views.UserActivity;

// Activity 是 Android 应用的 界面，它代表 用户能看到的一个屏幕。
// onCreate()	 Activity 创建时，执行初始化操作（如加载 UI）。
// onStart()	 Activity 变为可见，但还未与用户交互。
// onResume()	 Activity 进入前台，可以与用户交互。
// onPause()	 Activity 失去焦点（如用户打开了一个新的 Activity）。
// onStop()	     Activity 不可见（如被另一个界面完全覆盖）。
// onDestroy()	 Activity 被销毁，释放资源。
// onRestart()	 Activity 重新启动（从 onStop() 回来）。

// 生命周期流程
// onCreate() → onStart() → onResume()  // Activity 启动
// onPause() → onStop()  // Activity 进入后台
// onRestart() → onStart() → onResume()  // Activity 重新启动
// onDestroy()  // Activity 被销毁

// setContentView(R.layout.activity_main) 用于 设置 Activity 的界面。
// R.layout.activity_main 表示 XML 布局文件，R 代表资源（Resource）。
// 这个方法必须在 onCreate() 里调用，否则 Activity 没有 UI。
//
// findViewById(R.id.view_id)	获取 XML 中的 UI 组件
// setTitle("标题")	设置 Activity 标题
// getApplicationContext()	获取应用全局 Context
// getIntent().getStringExtra("key")	获取上一个 Activity 传递的数据
// startActivity(intent)	启动另一个 Activity


public class MainActivity extends AppCompatActivity {

    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        Log.d("MainActivity- onCreate", "App入口方法onCreate启动");
        Log.d("MainActivity", "onCreate 被调用");
        setContentView(R.layout.activity_main); // R：为每个资源文件分配一个索引

        // PrintLog p = new PrintLog();
        // p.print();

        Toolbar toolbar = findViewById(R.id.toolbar);
        setSupportActionBar(toolbar);

        // 获取布局中的 Button 和 EditText 控件
        Button button1 = findViewById(R.id.button_open);
        EditText editText = findViewById(R.id.editText);
        // 按钮点击事件：启动 SecondActivity
        button1.setOnClickListener(new View.OnClickListener() {
            public void onClick(View v) {
                // 获取输入框中的文本
                String userInput = editText.getText().toString();
                // 打印用户输入的内容（用于调试）
                Log.d("MainActivity", "用户输入: " + userInput);
                // 启动 SecondActivity，并传递数据
                Intent intent = new Intent(MainActivity.this, SecondActivity.class);
                intent.putExtra("user_input", userInput); // 将用户输入传递到 SecondActivity
                startActivity(intent);
            }
        });

        Button button2 = findViewById(R.id.button_open1);
        button2.setOnClickListener(new View.OnClickListener(){
            public void onClick(View v){
                Intent intent = new Intent(MainActivity.this , CustomViewActivity.class);
                startActivity(intent);
            }
        });

        Button button3 = findViewById(R.id.button_open2);
        button3.setOnClickListener(new View.OnClickListener(){
            public void onClick(View v){
                Intent intent = new Intent(MainActivity.this , MiWidgetActivity.class);
                startActivity(intent);
            }
        });

        Button button4 = findViewById(R.id.button_open3);
        button4.setOnClickListener(new View.OnClickListener(){
            public void onClick(View v){
                Intent intent = new Intent(MainActivity.this , ThirdActivity.class);
                startActivity(intent);
            }
        });

        Button button5 = findViewById(R.id.button_open4);
        button5.setOnClickListener(new View.OnClickListener(){
            public void onClick(View v){
                Intent intent = new Intent(MainActivity.this , DialogActivity.class);
                startActivity(intent);
            }
        });
        Button button6 = findViewById(R.id.button_open5);
        button6.setOnClickListener(new View.OnClickListener(){
            public void onClick(View v){
                Intent intent = new Intent(MainActivity.this , FragmentActivity.class);
                startActivity(intent);
            }
        });

        Button button7 = findViewById(R.id.button_open6);
        button7.setOnClickListener(new View.OnClickListener(){
            public void onClick(View v){
                Intent intent = new Intent(MainActivity.this , UserActivity.class);
                startActivity(intent);
            }
        });

        Button button8 = findViewById(R.id.button_open7);
        button8.setOnClickListener(new View.OnClickListener(){
            public void onClick(View v){
                Intent intent = new Intent(MainActivity.this , ServicesActivity.class);
                startActivity(intent);
            }
        });

        Button button9 = findViewById(R.id.button_open8);
        button9.setOnClickListener(new View.OnClickListener(){
            public void onClick(View v){
                Intent intent = new Intent(MainActivity.this , RecyclerViewActivity.class);
                startActivity(intent);
            }
        });

        Button button10 = findViewById(R.id.button_open9);
        button10.setOnClickListener(new View.OnClickListener(){
            public void onClick(View v){
                Intent intent = new Intent(MainActivity.this , ViewPager2Activity.class);
                startActivity(intent);
            }
        });

        Button button11 = findViewById(R.id.button_open10);
        button11.setOnClickListener(new View.OnClickListener(){
            public void onClick(View v){
                Intent intent = new Intent(MainActivity.this , GiftBoxActivity.class);
                startActivity(intent);
            }
        });
    }

    /*
    * 安卓的菜单有三类  OptionMenu  ContextMenu(长按View)   PopupMenu(弹出层菜单)
    * 可以通过xml定义 或 java层创建
    *
    *  onCreateOptionsMenu()方法必须返回true
    *  onOptionsItemSelected方法返回true
    * */
    @Override
    public boolean onCreateOptionsMenu(Menu menu) {
        // 加载自定义菜单
        getMenuInflater().inflate(R.menu.option , menu);
        return true;
    }


    @Override
    public boolean onOptionsItemSelected( MenuItem item) {
        if(item.getItemId() == R.id.save ){
            Toast.makeText(this, "保存包包",Toast.LENGTH_SHORT).show();
        }else{
            Toast.makeText(this, "点击菜单",Toast.LENGTH_SHORT).show();
        }

        return super.onOptionsItemSelected(item);
    }
}
